Projecting virtual presences along a moving trajectory

ABSTRACT

In one example, a method performed by a processing system includes controlling a first device in a first location to project a virtual presences in a current field of view of a subscriber of a virtual presence projection service, computing a moving trajectory of the subscriber from the first location to a second location, identifying a second device that is located along the moving trajectory, wherein the second device includes a second set of resources for projecting virtual presences, and wherein the second device is registered with the virtual presence projection service to lend the second set of resources to subscribers of the virtual presence projection service, and controlling the second device to project the virtual presence in the current field of view of the subscriber when the subscriber is no longer within range of the first device but is within range of the second device.

This application is a continuation of U.S. patent application Ser. No.16/898,131, filed Jun. 10, 2020, now U.S. Pat. No. 11,423,623, which isherein incorporated by reference in its entirety.

The present disclosure relates generally to immersive media, and moreparticularly to methods, computer-readable media, and apparatuses forprojecting virtual presences along a user's moving trajectory.

BACKGROUND

A hologram is a type of virtual presence in which a physical recordingof an interference pattern uses diffraction to produce athree-dimensional image. Many consumer applications communicateinformation in the form of virtual presences such as holographicprojections. For instance, a navigation application executing on auser's mobile phone may project a hologram image of a recommended routeby which the user may travel to a requested destination. A gaming orvideo application may use holographic images to produce an extendedreality environment without requiring the user to wear bulky orexpensive equipment (such as head mounted displays).

SUMMARY

Methods, computer-readable media, and apparatuses for projecting virtualpresences along a moving trajectory are described. In one example, amethod performed by a processing system including at least one processorincludes controlling a first device in a first location to project avirtual presence in a current field of view of a subscriber of a virtualpresence projection service, computing a moving trajectory of thesubscriber from the first location to a second location, identifying asecond device that is located along the moving trajectory, wherein thesecond device includes a second set of resources for projecting virtualpresences, and wherein the second device is registered with the virtualpresence projection service to lend the second set of resources tosubscribers of the virtual presence projection service, and controllingthe second device to project the virtual presence in the current fieldof view of the subscriber when the subscriber is no longer within rangeof the first device but is within range of the second device.

In another example, a non-transitory computer-readable medium storesinstructions which, when executed by a processing system including atleast one processor, cause the processing system to perform operations.The operations include controlling a first device in a first location toproject a virtual presence in a current field of view of a subscriber ofa virtual presence projection service, computing a moving trajectory ofthe subscriber from the first location to a second location, identifyinga second device that is located along the moving trajectory, wherein thesecond device includes a second set of resources for projecting virtualpresences, and wherein the second device is registered with the virtualpresence projection service to lend the second set of resources tosubscribers of the virtual presence projection service, and controllingthe second device to project the virtual presence in the current fieldof view of the subscriber when the subscriber is no longer within rangeof the first device but is within range of the second device.

In another example, an apparatus includes a processing system includingat least one processor and a non-transitory computer-readable mediumstoring instructions which, when executed by a processing systemincluding the at least one processor, cause the processing system toperform operations. The operations include controlling a first device ina first location to project a virtual presence in a current field ofview of a subscriber of a virtual presence projection service, computinga moving trajectory of the subscriber from the first location to asecond location, identifying a second device that is located along themoving trajectory, wherein the second device includes a second set ofresources for projecting virtual presences, and wherein the seconddevice is registered with the virtual presence projection service tolend the second set of resources to subscribers of the virtual presenceprojection service, and controlling the second device to project thevirtual presence in the current field of view of the subscriber when thesubscriber is no longer within range of the first device but is withinrange of the second device.

BRIEF DESCRIPTION OF THE DRAWINGS

The teachings of the present disclosure can be readily understood byconsidering the following detailed description in conjunction with theaccompanying drawings, in which:

FIG. 1 illustrates an example system in which examples of the presentdisclosure for projecting virtual presences along a user's movingtrajectory may operate;

FIG. 2 illustrates a flowchart of an example method for projectingvirtual presences along a user's moving trajectory, in accordance withthe present disclosure; and

FIG. 3 depicts a high-level block diagram of a computing device orprocessing system specifically programmed to perform the functionsdescribed herein.

To facilitate understanding, identical reference numerals have beenused, where possible, to designate identical elements that are common tothe figures.

DETAILED DESCRIPTION

Examples of the present disclosure project virtual presences (e.g.,holographic images) along a user's moving trajectory. As discussedabove, many consumer applications communicate information in the form ofvirtual presences such as holographic projections. For instance, anavigation application executing on a user's mobile phone may project ahologram image of a recommended route by which the user may travel to arequested destination. A gaming or video application may use holographicimages to produce an extended reality environment without requiring theuser to wear bulky or expensive equipment (such as head mounteddisplays).

Using virtual presences for these applications may create an experiencethat is more immersive than simply looking at a flat screen. However, todate, many conventional display devices do not have the capability toproject virtual presences as a default. Thus, a user who is using anapplication that projects virtual presences may be forced to remain inone location (i.e., the location of the display device projecting thevirtual presences) for as long as he or she is using the application.This may not always be feasible. For instance, a user may be using anavigation application that projects directions in the form ofholographic images onto a heads up display that is part of the user'svehicle's windshield. Thus, when the user exits the vehicle, theholographic images may no longer be available. However, the user maystill require directions from the location at which the vehicle isparked to the user's final destination.

Examples of the present disclosure provide a virtual presence that moveswith a user, by borrowing resources from devices located along theuser's moving trajectory. In one example, the user's moving trajectoryis known or monitored as the user interacts with an application thatinvolves the projection of a virtual presence (e.g., a navigationapplication, a medical application, a video conferencing application, alaw enforcement application, or the like). Devices that are locatedalong the user's moving trajectory, and which have volunteered (e.g.,via subscription or specific consent) to lend resources for projectingvirtual presences, may be identified. As the user moves along the movingtrajectory, then, the virtual presence may be “handed off” from deviceto device (e.g., as the user moves out of range of one device and withinrange of a next device). In this manner, a continuous or near continuousvirtual presence may be presented to a moving user in a manner than issubstantially seamless (e.g., without lengthy pauses or interruptions ofthe virtual presence). In further examples, projection of the virtualpresence may also be adjusted to compensate for changes conditions inthe surrounding environment (e.g., loud noises, changes in lighting,presence of other individuals, etc.). These and other aspects of thepresent disclosure are described in greater detail below in connectionwith the examples of FIGS. 1-3 .

Within the context of the present disclosure, the term “virtualpresence” is understood to refer to any media that creates theappearance that a person (or any other entities such as parts of aperson such as a head, a limb, a hand or one or more fingers, or ananimated or simulated person or object) is communicating or interactingwith one or more other people or entities. In other words, a virtualpresence may simulate the presence of another person or entity,potentially including that other person's or entity's visible and/oraudible presence. For instance, a virtual presence could comprise aholographic image (potentially with accompanying audio) or an imagegenerated by a system such as the IMAX 3D system. A virtual presence mayhave a visual component only, an audio component only, or both an audiocomponent and a visual component.

To further aid in understanding the present disclosure, FIG. 1illustrates an example system 100 in which examples of the presentdisclosure for projecting virtual presences along a user's movingtrajectory may operate. The system 100 may include any one or more typesof communication networks, such as a traditional circuit switchednetwork (e.g., a public switched telephone network (PSTN)) or a packetnetwork such as an Internet Protocol (IP) network (e.g., an IPMultimedia Subsystem (IMS) network), an asynchronous transfer mode (ATM)network, a wireless network, a cellular network (e.g., 2G, 3G, 4G, 5Gand the like), a long term evolution (LTE) network, and the like,related to the current disclosure. It should be noted that an IP networkis broadly defined as a network that uses Internet Protocol to exchangedata packets. Additional example IP networks include Voice over IP(VoIP) networks, Service over IP (SoIP) networks, and the like.

In one example, the system 100 may comprise a core network (e.g., atelecommunication network) 102. The core network 102 may be incommunication with one or more access networks 120 and 122, and theInternet (not shown). In one example, the core network 102 may combinecore network components of a cellular network with components of atriple play service network, where triple-play services includetelephone services, Internet services and television services tosubscribers. For example, the core network 102 may functionally comprisea fixed mobile convergence (FMC) network, e.g., an IP MultimediaSubsystem (IMS) network. In addition, the core network 102 mayfunctionally comprise a telephony network, e.g., an InternetProtocol/Multi-Protocol Label Switching (IP/MPLS) backbone networkutilizing Session Initiation Protocol (SIP) for circuit-switched andVoice over Internet Protocol (VoIP) telephony services. The core network102 may further comprise a broadcast television network, e.g., atraditional cable provider network or an Internet Protocol Television(IPTV) network, as well as an Internet Service Provider (ISP) network.In one example, the core network 102 may include a plurality oftelevision (TV) servers (e.g., a broadcast server, a cable head-end), aplurality of content servers, an advertising server (AS), an interactiveTV/video on demand (VoD) server, and so forth. For ease of illustration,various additional elements of the core network 102 are omitted fromFIG. 1 .

In one example, the access networks 120 and 122 may comprise DigitalSubscriber Line (DSL) networks, public switched telephone network (PSTN)access networks, broadband cable access networks, Local Area Networks(LANs), wireless access networks (e.g., an Institute for Electrical andElectronics Engineers (IEEE) 802.11/Wi-Fi network and the like),cellular access networks, 3^(rd) party networks, and the like. Forexample, the operator of the core network 102 may provide a cabletelevision service, an IPTV service, or any other types oftelecommunication service to subscribers via access networks 120 and122. In one example, the access networks 120 and 122 may comprisedifferent types of access networks, may comprise the same type of accessnetwork, or some access networks may be the same type of access networkand other may be different types of access networks. In one example, thecore network 102 may be operated by a telecommunication network serviceprovider. The core network 102 and the access networks 120 and 122 maybe operated by different service providers, the same service provider ora combination thereof, or may be operated by entities having corebusinesses that are not related to telecommunications services, e.g.,corporate, governmental or educational institution LANs, and the like.

In one example, the access network 120 may be in communication with oneor more devices 108-112. Similarly, the access network 122 may be incommunication with one or more devices 114-118. Access networks 120 and122 may transmit and receive communications between devices 108-118,between devices 108-118, application server (AS) 104, and/or database(DB) 106, other components of the core network 102, devices reachablevia the Internet in general, and so forth. In one example, each of thedevices 108-118 may comprise any single device or combination of devicesthat may comprise a user endpoint (UE) device. For example, the devices108-118 may each comprise a mobile device, a cellular smart phone, alaptop, a tablet computer, a desktop computer, a wearable smart device(e.g., a smart watch or smart glasses), an application server, a bank orcluster of such devices, and the like. In one example, devices 108-118may comprise AR devices such as heads-up displays, wearable ornon-wearable optical see-through or video see-through devices, handheldcomputing devices with at least a camera and a display, and so forth.

In one example, at least some of the devices 108-118 include resourcesthat may be used to monitor an individual's moving trajectory (e.g.,cameras, microphones, accelerometers, motion sensors, and/or other typesof sensors). In a further example, at least some of the devices 108-118include resources that may be used to project virtual presences (e.g.,light sources (e.g., lasers, light-emitting diodes, or organiclight-emitting diodes), projectors, lens, speakers, and/or other typesof output devices). The devices and resources may be integrated intouser endpoint devices or into fixed structures or items. For instance,as illustrated in FIG. 1 , the device 108 may comprise a smart phone,the device 110 may comprise a lamp post (or be mounted in a lamp post),the device 112 may comprise a vehicle (or be mounted on a vehicle), thedevice 114 may be mounted on a building, the device 116 may comprise asmart watch or a fitness tracker, and the device 118 may comprise atraffic signal (or be mounted of a traffic signal).

In one example, devices 108-118 may each comprise programs, logic orinstructions for performing functions in connection with examples of thepresent disclosure for projecting virtual presences along a user'smoving trajectory. For example, devices 108-118 may each comprise acomputing system or device, such as computing system 300 depicted inFIG. 3 , and may be configured to provide one or more operations orfunctions in connection with examples of the present disclosure forprojecting virtual presences along a user's moving trajectory, asdescribed herein.

It should be noted that as used herein, the terms “configure,” and“reconfigure” may refer to programming or loading a processing systemwith computer-readable/computer-executable instructions, code, and/orprograms, e.g., in a distributed or non-distributed memory, which whenexecuted by a processor, or processors, of the processing system withina same device or within distributed devices, may cause the processingsystem to perform various functions. Such terms may also encompassproviding variables, data values, tables, objects, or other datastructures or the like which may cause a processing system executingcomputer-readable instructions, code, and/or programs to functiondifferently depending upon the values of the variables or other datastructures that are provided. As referred to herein a “processingsystem” may comprise a computing device including one or moreprocessors, or cores (e.g., as illustrated in FIG. 3 and discussedbelow) or multiple computing devices collectively configured to performvarious steps, functions, and/or operations in accordance with thepresent disclosure.

In one example, DB 106 may comprise a physical storage device integratedwith AS 104 (e.g., a database server), or attached or coupled to the AS104, to store various types of information in support of systems forprojecting virtual presences along a user's moving trajectory. Forexample, DB 106 may store information about devices, such as any ofdevices 108-118 and additional devices not illustrated, that areregistered to lend resources to support projecting virtual presencesalong a user's moving trajectory. As discussed above, devices mayregister with a service (e.g., offered by a service provider of corenetwork 102 as a subscribed service or by a third party entity otherthan the service provider of core network 102) to lend resources thatmay help to monitor an individual's moving trajectory and/or to projectvirtual presences along the individual's moving trajectory. Thus, the DB106 may store, for each registered device, one or more of the followingtypes of data: a device identifier (e.g., an IP address, a MAC address,a serial number, a phone number, or another type of identifier), thetypes of resources that the device has registered to lend (e.g.,cameras, projectors, speakers, microphones, speedometers, and/or othertypes of sensors), the location of the device (e.g., a fixed locationfor a device that is not mobile or a location history/most recentlocation for a device that is mobile), and/or other types of data.

To illustrate, AS 104 (or any of devices 108-118, if the device hassufficient processing power) may identify a current location of anindividual based on a global positioning system signal from theindividual's mobile phone. The individual's location history over aprior period of time (e.g., last x minutes) may be used to estimate theindividual's likely moving trajectory (e.g., where the user will be inthe next y seconds). The DB 106 may then be queried to identify anyregistered devices along the moving trajectory that may be able to lendresources to project a virtual presence along the individual's movingtrajectory.

The AS 104 may also continuously track the respective locations andresource availabilities of the UE devices 108-118 and update the DB 106accordingly. For instance, in one example, the locations of the UEdevices 108-118 may be tracked up to the centimeter level. The AS 104may also track the UE devices' respective current resource usage levels,such as central processing unit (CPU) usage, memory usage, bandwidthusage, and whether any of the resources required specifically for theprojection of virtual presences (e.g., light sources, projectors,speakers, etc.) are currently in use by other applications.

Although only a single AS 104 and a single DB 106 are illustrated, itshould be noted that any number of servers 104 or databases 106 may bedeployed. In addition, AS 104 and/or DB 106 may comprise public orprivate cloud computing resources, e.g., one or more hostdevices/servers in one or more data centers to host virtual machines(VMs), containers, or the like comprising various functions, services,and so on.

In one example, AS 104 and/or DB 106 may operate in a distributed and/orcoordinated manner to perform various steps, functions, and/oroperations described herein. In one example, application server 104 maycomprise network function virtualization infrastructure (NFVI), e.g.,one or more devices or servers that are available as host devices tohost virtual machines (VMs), containers, or the like comprising virtualnetwork functions (VNFs). In other words, at least a portion of thenetwork 102 may incorporate software-defined network (SDN) components.

It should be noted that the system 100 has been simplified. Thus, thesystem 100 may be implemented in a different form than that which isillustrated in FIG. 1 , or may be expanded by including additionalendpoint devices, access networks, network elements, applicationservers, etc. without altering the scope of the present disclosure. Inaddition, system 100 may be altered to omit various elements, substituteelements for devices that perform the same or similar functions, combineelements that are illustrated as separate devices, and/or implementnetwork elements as functions that are spread across several devicesthat operate collectively as the respective network elements. Forexample, the system 100 may include other network elements (not shown)such as border elements, routers, switches, policy servers, securitydevices, gateways, a content distribution network (CDN) and the like.For example, portions of the core network 102 and/or access networks 120and 122 may comprise a content distribution network (CDN) having ingestservers, edge servers, and the like.

Similarly, although only two access networks 120 and 122 are shown, inother examples, access networks 120 and/or 122 may each comprise aplurality of different access networks that may interface with the corenetwork 102 independently or in a chained manner. For example, devices108-112 may access the core network 102 via different access networks,devices 114-118 may access the core network 102 via different accessnetworks, and so forth. Thus, these and other modifications are allcontemplated within the scope of the present disclosure.

FIG. 2 illustrates a flowchart of an example method 200 for projectingvirtual presences along a user's moving trajectory, in accordance withthe present disclosure. In one example, the method 200 is performed by acomponent of the system 100 of FIG. 1 , such as by any of the userendpoint devices 108-118, the application server 104, and/or any one ormore components thereof (e.g., a processor, or processors, performingoperations stored in and loaded from a memory), or by any of the userendpoint devices 108-118 or the application server 104 in conjunctionwith one or more other devices, such as a different one or more of anyof the user endpoint devices 108-118, the application server 104, and soforth.

In one example, the steps, functions, or operations of method 200 may beperformed by a computing device or system 300, and/or processor 302 asdescribed in connection with FIG. 3 below. For instance, the computingdevice or system 300 may represent any one or more components of a userendpoint device 108-118 or application server 104 in FIG. 1 that is/areconfigured to perform the steps, functions and/or operations of themethod 200. Similarly, in one example, the steps, functions, oroperations of method 200 may be performed by a processing systemcomprising one or more computing devices collectively configured toperform various steps, functions, and/or operations of the method 200.For instance, multiple instances of the computing device or processingsystem 300 may collectively function as a processing system. Forillustrative purposes, the method 200 is described in greater detailbelow in connection with an example performed by a processing system.The method 200 begins in step 202 and proceeds to step 204.

In step 204, the processing system may control a first device in a firstlocation to project a virtual presence (e.g., a hologram of a humanhead, a pointing finger, an arrow, a pointing hand, a pointing sign, ashort text message, and so on) in a current field of view of asubscriber of a virtual presence projection service. In one example, thesubscriber may subscribe to the virtual presence projection service inconjunction with a software application that may execute on a mobileuser endpoint device (e.g., a mobile phone, a wearable smart device, anendpoint device deployed in a vehicle, or the like). The softwareapplication may comprise, for example, a navigation application, a videocalling application, a gaming application, or another type ofapplication.

In one example, the first device comprises a device that is separatefrom a device including the processing system. For instance, theprocessing system may be part of a user endpoint device (e.g., a mobilephone, a wearable smart device, or the like) that belongs to thesubscriber, where the processing system supports the virtual presenceprojection service. However, the first device may comprise a device thatdoes not belong to the subscriber (e.g., belongs to another person, to acompany, to a public or governmental entity, etc.). In this case theprocessing system functions as a central controller that coordinates theoperations of a plurality of other devices to project virtual presences.For instance, the processing system may be executing a navigationapplication on the subscriber's mobile phone while the subscriber iswalking down the street. The first device may be mounted on a permanentstructure (e.g., a lamp post, a building, a sign post, a traffic light,etc.) or a non-permanent structure (e.g., a vehicle, a drone, a mobilecommunications device of the subscriber or another individual, awearable smart device of the subscriber or another individual, etc.) inthe first location. It should be noted that a “permanent” structure isnot necessarily a structure that can never be moved (e.g., as buildingscan be demolished, street signs can be relocated or replaced, etc.), butis a structure that remains in a fixed place for an extended period oftime (e.g., at least multiple days, months, or years). The first devicemay include a first set of resources for projecting virtual presences(e.g., light sources (e.g., lasers, light-emitting diodes, or organiclight-emitting diodes), projectors, lens, mirrors, speakers, cameras,microphones, speedometers, and/or other types of sensors and outputdevices). The processing system may control the first device to projecta virtual presence of a walking route when the subscriber is approachingthe first device (e.g., is within x feet of the first device, e.g., 50feet, 75 feet and so on).

The processing system may communicate with the first device via one ormore wireless links. For instance, the processing system and the firstdevice may communicate over a wireless network (e.g., WiFi, cellular,etc.). In another example, the processing system and the first devicemay communicate using a wireless technology standard for exchanging dataover short distances, such as Bluetooth of near field communication(NFC). For instance, the processing system may continuously execute adiscovery mode to discover other devices within communication range thatare registered to lend resources for projecting virtual presences.

In one example, controlling the first device to project the virtualpresence may include identifying a current viewing angle of thesubscriber (and the current location of the subscriber relative to thefirst device) and sending instructions to the first device to adjust anorientation of the virtual presence based on the viewing angle, suchthat the virtual presence is not clearly visible to individuals otherthan the subscriber. For instance, the subscriber may be in a publiclocation and may not want others to see the information beingcommunicated via the virtual presence. In this case, certain imageprojection techniques may be employed to minimize the visibility of thevirtual presence outside of the subscriber's viewing angle. The volumeof any audio associated with the virtual presence may be similarlycontrolled to minimize the number of individuals, aside from thesubscriber, who can clearly hear the audio. In a further example, theorientation and/or volume of the virtual presence may be adjusted basedon a number of people who are viewing the virtual presence (e.g., thesubscriber may be traveling with a companion).

In a further example, the orientation and/or audio may be adjusted tocompensate for visual obstructions, loud noises, and other conditions ofthe surrounding environment which may impair the subscriber's ability toclearly see and/or hear the virtual presence. For instance, the volumeof the audio may be temporarily raised as a loud motorcycle is drivingpast the subscriber, and then lowered once the motorcycle is out ofearshot (or out of a detection range of the processing system and/orfirst device). Similarly, the brightness of the virtual presence may beadjusted to compensate for a glare caused by the setting sun or bylighting that may be set up around a construction zone.

In step 206, the processing system may compute a moving trajectory ofthe subscriber from the first location to a second location. The movingtrajectory may comprise a route that the subscriber is expected totraverse from the first location to the second location. In one example,the moving trajectory may be inferred from knowledge of the subscriber'sintended destination. For instance, if the processing system isexecuting a navigation application, the subscriber may have inputted theintended destination (e.g., an address, a landmark, or the like) to thenavigation application in order to obtain directions. Thus, theprocessing system may know the route that the navigation application ispresenting to the subscriber. In another example, where the processingsystem is executing an application that is not a navigation application,the moving trajectory may be inferred from the subscriber's previouslocations, the subscriber's speed, knowledge of any nearby locationsthat the subscriber is known to frequent (e.g., the subscriber's home,office, gym, favorite grocery store, etc.), a map of the areasurrounding the subscriber (which may show, for instance, which streetsare one-way or two-way, any obstacles which may be present, thelocations of intersections, etc.). Information about the subscriber'sprevious locations, speed, and the like may be received from thesubscriber's endpoint device or from other devices or sensors in thesurrounding areas that have detected information about the subscriber.

In one example, the second location may be the subscriber's intendeddestination (e.g., a final destination). In another example, the secondlocation may simply be another location the subscriber is expected topass between the first location and the intended destination.

In step 208, the processing system may identify a second device that islocated along the moving trajectory, where the second device includes asecond set of resources for projecting virtual presences (e.g., lightsources, light-emitting diodes, organic light-emitting diodes,projectors, lens, mirrors, speakers, cameras, microphones, speedometers,and/or other types of sensors and output devices), and where the seconddevice is registered with the virtual presence projection service tolend the second set of resources to subscribers of the virtual presenceprojection service.

Like the first device, the second device may be mounted on a lamp post,a building, a vehicle, a drone, or another object along the movingtrajectory. As discussed above, the second device may be registered withthe virtual presence projection service to lend the second set ofresources to subscribers of the virtual presence projection service. Itshould be noted that the first device may also be registered with thevirtual presence projection service to lend the first set of resourcesto subscribers. Thus, devices which include resources that can be usedto project virtual presences may register with the virtual presenceprojection service. The virtual presence projection service may maintaina database that stores information about all devices registered with theservice. For instance, for each registered device, the database mayindicate the location of the device (e.g., global positioningcoordinates, longitude/latitude, etc.), the nature of the resources towhich the device has access, the approximate radius within which anyvirtual presences projected by the device are clearly visible, anylimitations on use of the resources, the status of the device (e.g.,powered on or off, functioning properly or not functioning properly,communicatively accessible by the processing system, etc.) and/or otherinformation.

In one example, once the second device is identified, the processingsystem may send a request to the second device to reserve at least someresources of the second set of resources. For instance, the processingsystem may request that the second device not lend resources needed forprojecting virtual presences to another device (i.e., a device otherthan the processing system) for a defined period of time (e.g., the nexty minutes). This will help to ensure that the resources that are neededfrom the second device are available when the resources are actuallyneeded for a hand off of the virtual presence, as discussed in furtherdetail below.

In optional step 210 (illustrated in phantom), the processing system maydetect that the subscriber will be outside the range of the first devicewithin a predefined period of time (e.g., x seconds or less), based onthe moving trajectory. In one example, “outside the range” may mean thatthe processing system is outside of communication range with the firstdevice (e.g., no longer able to communicate wirelessly with the firstdevice), the first device is outside the subscriber's field of view, orthe projection range of the first device (e.g., the range within whichthe virtual presence projected by the first device is visible) isoutside of the subscriber's field of view.

Detecting when the processing system is expected to be outside the rangeof the first device may be based on the subscriber's current positionalong the moving trajectory (e.g., as may be detected by a globalpositioning system or other location tracking techniques executed by theprocessor or by another device in communication with the processor), thesubscriber's current speed along the moving trajectory (e.g., as may bedetermined by a global positioning system or by an accelerometer of thesubscriber's device), and/or the subscriber's direction of gaze (e.g.,as may be determined by a gaze tracking technique executed by theprocessor or by another device in communication with the processor suchas a pair of smart glasses). For instance, the processing system maycalculate an estimated time (or time frame) within which the subscriberis expected to be no longer within range of the first device, and thesecond device may then be identified within a predefined window of time(e.g., x seconds) prior to the estimated time to minimize delays in thehanding off of the virtual presence, as discussed above.

In optional step 212 (illustrated in phantom), the processing system maycontrol the first device to cease projecting the virtual presence. Forinstance, the processing system may send an instruction to the firstdevice requesting that the first device stop projecting the virtualpresence, in anticipation of the first device handing the virtualpresence off to a second device (discussed in further detail below). Inother examples, however, the processing system may not send an explicitinstruction to the first device to cease projection. For instance, thefirst device may simply cease projecting the virtual presence when thefirst device detects that the processing system is no longer withinrange.

In step 214, the processing system may control a second device toproject the virtual presence in the current field of view of thesubscriber when the subscriber is no longer within range of the firstdevice (e.g., outside of a communication range with the first device,the first device is no longer within the subscriber's field of view, orthe projection range of the first device is no longer within thesubscriber's field of view) but is within range of the second device.

In one example, the first device comprises a device that is separatefrom the device including the processing system. For instance, thesecond device, like the first device, may comprise a device that doesnot belong to the subscriber (e.g., belongs to another person, to acompany, to a public or governmental entity, etc.). For instance,continuing the example of the navigation application executing on thesubscriber's mobile phone, the second device may be mounted on a lamppost, a building, a vehicle, a drone, or another object along the movingtrajectory. The second device may include a second set of resources forprojecting virtual presences (e.g., light sources, projectors, speakers,cameras, microphones, speedometers, and/or other types of sensors andoutput devices). The processing system may control the second device toproject the virtual presence of a walking route when the subscriber isapproaching the second device (e.g., is within x feet of the seconddevice), when the subscriber is out of communication range with thefirst device, or when the first device (or the projection range of thefirst device) is no longer within the subscriber's field of view.

The processing system may communicate with the second device via one ormore wireless links. For instance, the processing system and the seconddevice may communicate over a wireless network (e.g., public WiFi, aprivate WiFi hotspot, cellular, etc.). In another example, theprocessing system and the second device may communicate using a wirelesstechnology standard for exchanging data over short distances, such asBluetooth of near field communication (NFC). For instance, theprocessing system may continuously execute a discovery mode to discoverother devices within communication range that include resources forprojecting virtual presences. In one example, the processing system maycommunicate with the first device and the second device using the sametype of wireless communication (e.g., using public WiFi to communicatewith both the first device and the second device). In another example,however, the processing system may communicate with the first device andthe second device using different types of wireless communication (e.g.,using public WiFi to communicate with the first device, but Bluetooth tocommunicate with the second device).

In one example, controlling the second device to project the virtualpresence may include identifying a current viewing angle of thesubscriber and sending instructions to the second device to adjust anorientation of the virtual presence based on the viewing angle, suchthat the virtual presence is not clearly visible to individuals otherthan the subscriber. The volume of any audio associated with the virtualpresence may be similarly controlled to minimize the number ofindividuals, aside from the subscriber, who can clearly hear the audio.

In another example, controlling the second device to project the virtualpresence may include identifying a third device that is located alongthe moving trajectory, where the third device includes a third set ofresources for projecting virtual presences (e.g., light sources (e.g.,lasers, light-emitting diodes, or organic light-emitting diodes),projectors, lens, mirrors, speakers, cameras, microphones, speedometers,and/or other types of sensors and output devices), and where the thirddevice is also registered with the virtual presence projection serviceto lend the third set of resources to subscribers of the virtualpresence projection service. The processor may control the third deviceto cooperate with the second device to project the virtual presence. Forinstance, the second set of resources may include resources that allowthe second device to project a virtual presence, but may not includeresources that allow the second device to track the subscriber's viewingangle or direction of gaze. The third set of resources, however, mayinclude resources that allow the third device to track the subscriber'sviewing angle or direction of gaze. Thus, the third device may track thesubscriber's viewing angle and may communicate information about thesubscriber's viewing angle to the second device. The second device maythen adjust the orientation of the virtual presence in response to theinformation received from the third device.

The method 200 may end in step 216.

Thus, examples of the method 200 may be used to facilitate a variety ofapplications that utilize virtual presences, even when the user ismoving or may not have consistent access to a single device that iscapable of projecting virtual presences. For instance, as discussedabove, a user may be using a navigation application that projectsdirections in the form of virtual presences onto a heads up display thatis part of the user's vehicle's windshield. Thus, when the user exitsthe vehicle, the virtual presences may no longer be available. However,the user may still require directions from the location at which thevehicle is parked to the user's final destination.

In another example, a user may be using an application that tracks amedical condition of the user. For instance, the user may be diabeticand may use an application on his smart watch to monitor his blood sugarlevel (e.g., potentially in conjunction with an insulin pump or othersensor). The application may be configured to control projection ofvirtual presences that ask for assistance and/or communicate informationabout the user's condition when the user's blood sugar level fallsoutside of a predefined range. For instance, the user may be prone toexperiencing weakness and/or disorientation when his blood sugar levelfalls outside of the predefined range. In this case, projection of thevirtual presences may alert other nearby individuals to the fact thatthe user may require assistance or medical attention.

In another example, a user may be using an application that maintains upto date medical information about a plurality of individuals. In thiscase, the application may be configured to present patient data for aplurality of patients of a doctor who is making rounds in a hospital. Asthe doctor moves from room to room, the virtual presence may move withthe doctor and may change to present information about the patient onwhom the doctor is currently checking, or to inform the doctor of anorder in which the doctor is to visit with patients.

In another example, a user may be using an application for videocalling. In this case, the application may be configured to controlprojection of virtual presences of other participants of a video call(e.g., all at once, or one at a time based on who is currently speaking,etc.). This may free the user up from looking down at his phone screen,which may be dangerous if the user is simultaneously engaged in anotheractivity (such as walking, cooking, using equipment at the gym, etc.).This may also provide a more personal experience for the user.

In another example, a user may be using an application for lawenforcement. In this case, an application may be configured to controlprojection about an individual or object that is registered in a lawenforcement, governmental, and/or public database. For instance, apolice officer may pull a driver over for speeding, and may be able touse the driver's license number, the vehicle's license plate, or thevehicle's registration number to look up further information, which mayin turn be projected as a virtual presence by a heads up display of thepolice car. When the police officer exits the police car (and no longerhas a view of the heads up display), the virtual presence may beprojected by other devices in the surrounding area (e.g., devicesmounted on street signs or buildings, devices mounted on the exterior ofthe police car, drones, etc.).

Moreover, although the processing system is discussed within the contextof the method 200 as functioning as a controller (for one or more otherdevices that project the virtual presences), it will be appreciated thatin some cases, the device of which the processing system is a part mayalso cooperate to project the virtual presence. For instance, the deviceof which the processing system is a part may not have the resources toproject the image portion of the virtual presence. However, the deviceof which the processing system is a part may include a speaker that iscapable of playing audio associated with the virtual presence.

It should be noted that the method 200 may be expanded to includeadditional steps, or may be modified to replace steps with differentsteps, to combine steps, to omit steps, to perform steps in a differentorder, and so forth. For instance, in one example the processing systemmay repeat one or more steps of the method 200, such as steps 206-212.For example, the processing system may continuously monitor thesubscriber's moving trajectory for as long as the processing system isexecuting the application in conjunction with the virtual presenceprojection service, and may continuously adjust parameters such asselecting additional devices to which to hand off the virtual presence,adjusting the orientation of the virtual presence, adjusting the volumeof audio associated with the virtual presence, and the like. In otherwords, the method 200 may borrow resources from any number of devicesalong the moving trajectory in order to present a continuous virtualpresence as the subscriber is moving. Thus, these and othermodifications are all contemplated within the scope of the presentdisclosure.

In addition, although not expressly specified above, one or more stepsof the method 200 may include a storing, displaying and/or outputtingstep as required for a particular application. In other words, any data,records, fields, and/or intermediate results discussed in the method canbe stored, displayed and/or outputted to another device as required fora particular application. Furthermore, operations, steps, or blocks inFIG. 2 that recite a determining operation or involve a decision do notnecessarily require that both branches of the determining operation bepracticed. In other words, one of the branches of the determiningoperation can be deemed as an optional step. However, the use of theterm “optional step” is intended to only reflect different variations ofa particular illustrative embodiment and is not intended to indicatethat steps not labelled as optional steps to be deemed to be essentialsteps. Furthermore, operations, steps or blocks of the above describedmethod(s) can be combined, separated, and/or performed in a differentorder from that described above, without departing from the exampleembodiments of the present disclosure.

Moreover, use of numerical terms like “first,” “second,” “third,” andthe like is meant to differentiate between items or actions of the samenature, but does not necessarily imply that any specific number of theitems or actions is required. For instance, a reference to a “firstdevice” and a “second device,” does not necessarily imply that only twodevices are involved (e.g., additional devices could be involved).Similarly, a reference to a “second set of resources” may notnecessarily imply the existence of a “first set of resources.”

FIG. 3 depicts a high-level block diagram of a computing device orprocessing system specifically programmed to perform the functionsdescribed herein. For example, any one or more components or devicesillustrated in FIG. 1 or described in connection with the method 200 maybe implemented as the processing system 300. As depicted in FIG. 3 , theprocessing system 300 comprises one or more hardware processor elements302 (e.g., a microprocessor, a central processing unit (CPU) and thelike), a memory 304, (e.g., random access memory (RAM), read only memory(ROM), a disk drive, an optical drive, a magnetic drive, and/or aUniversal Serial Bus (USB) drive), a module 305 for projecting virtualpresences along a user's moving trajectory, and various input/outputdevices 306, e.g., a camera, a video camera, storage devices, includingbut not limited to, a tape drive, a floppy drive, a hard disk drive or acompact disk drive, a receiver, a transmitter, a speaker, a display, aspeech synthesizer, an output port, and a user input device (such as akeyboard, a keypad, a mouse, and the like).

Although only one processor element is shown, it should be noted thatthe computing device may employ a plurality of processor elements.Furthermore, although only one computing device is shown in the Figure,if the method(s) as discussed above is implemented in a distributed orparallel manner for a particular illustrative example, i.e., the stepsof the above method(s) or the entire method(s) are implemented acrossmultiple or parallel computing devices, e.g., a processing system, thenthe computing device of this Figure is intended to represent each ofthose multiple computers. Furthermore, one or more hardware processorscan be utilized in supporting a virtualized or shared computingenvironment. The virtualized computing environment may support one ormore virtual machines representing computers, servers, or othercomputing devices. In such virtualized virtual machines, hardwarecomponents such as hardware processors and computer-readable storagedevices may be virtualized or logically represented. The hardwareprocessor 302 can also be configured or programmed to cause otherdevices to perform one or more operations as discussed above. In otherwords, the hardware processor 302 may serve the function of a centralcontroller directing other devices to perform the one or more operationsas discussed above.

It should be noted that the present disclosure can be implemented insoftware and/or in a combination of software and hardware, e.g., usingapplication specific integrated circuits (ASIC), a programmable logicarray (PLA), including a field-programmable gate array (FPGA), or astate machine deployed on a hardware device, a computing device, or anyother hardware equivalents, e.g., computer readable instructionspertaining to the method(s) discussed above can be used to configure ahardware processor to perform the steps, functions and/or operations ofthe above disclosed method(s). In one example, instructions and data forthe present module or process 305 for projecting virtual presences alonga user's moving trajectory (e.g., a software program comprisingcomputer-executable instructions) can be loaded into memory 304 andexecuted by hardware processor element 302 to implement the steps,functions or operations as discussed above in connection with theexample method 200. Furthermore, when a hardware processor executesinstructions to perform “operations,” this could include the hardwareprocessor performing the operations directly and/or facilitating,directing, or cooperating with another hardware device or component(e.g., a co-processor and the like) to perform the operations.

The processor executing the computer readable or software instructionsrelating to the above described method(s) can be perceived as aprogrammed processor or a specialized processor. As such, the presentmodule 305 for projecting virtual presences along a user's movingtrajectory (including associated data structures) of the presentdisclosure can be stored on a tangible or physical (broadlynon-transitory) computer-readable storage device or medium, e.g.,volatile memory, non-volatile memory, ROM memory, RAM memory, magneticor optical drive, device or diskette and the like. Furthermore, a“tangible” computer-readable storage device or medium comprises aphysical device, a hardware device, or a device that is discernible bythe touch. More specifically, the computer-readable storage device maycomprise any physical devices that provide the ability to storeinformation such as data and/or instructions to be accessed by aprocessor or a computing device such as a computer or an applicationserver.

While various embodiments have been described above, it should beunderstood that they have been presented by way of example only, and notlimitation. Thus, the breadth and scope of a preferred embodiment shouldnot be limited by any of the above-described example embodiments, butshould be defined only in accordance with the following claims and theirequivalents.

What is claimed is:
 1. A method comprising: controlling, by a processingsystem including at least one processor, a first device in a firstlocation to project a virtual presence in a current field of view of asubscriber of a virtual presence projection service; computing, by theprocessing system, a moving trajectory of the subscriber, wherein themoving trajectory comprises a route that the subscriber is expected totraverse while moving from the first location to a second location;identifying, by the processing system, a second device that is locatedalong the moving trajectory, wherein the second device includes a secondset of resources for projecting virtual presences, wherein the seconddevice is registered with a database maintained by the virtual presenceprojection service to lend the second set of resources to subscribers ofthe virtual presence projection service, wherein an entry for the seconddevice in the database indicates a location of the second device, andwherein the identifying comprises determining that the location of thesecond device as indicated by the entry coincides with the route thatthe subscriber is expected to traverse; and controlling, by theprocessing system, the second device to project the virtual presence inthe current field of view of the subscriber when the subscriber iswithin range of the second device.
 2. The method of claim 1, furthercomprising, subsequent to the identifying but prior to controlling thesecond device to project the virtual presence: detecting, by theprocessing system, that the subscriber will be outside a range of thefirst device within a predefined period of time, based on the movingtrajectory; and controlling, by the processing system, the first deviceto cease projecting the virtual presence.
 3. The method of claim 1,wherein the first device is part of a vehicle.
 4. The method of claim 3,wherein the first device comprises a heads up display of a windshield ofthe vehicle.
 5. The method of claim 1, wherein the processing systemcomprises a processing system of a mobile device of the subscriber, andwherein the processing system is executing an application that supportsthe virtual presence projection service.
 6. The method of claim 1,wherein the second device is part of a permanent structure that islocated along the moving trajectory.
 7. The method of claim 6, whereinthe second device is part of at least one of: a building, a lamp post, asign post, or a traffic light.
 8. The method of claim 1, wherein thesecond device is part of a non-permanent structure that is located alongthe moving trajectory.
 9. The method of claim 8, wherein the seconddevice is part of at least one of: a mobile communications device, awearable smart device, a drone, or a vehicle.
 10. The method of claim 1,wherein the controlling the second device to project the virtualpresence comprises: identifying, by the processing system, a viewingangle of the subscriber; and adjusting, by the processing system, anorientation of the virtual presence based on the viewing angle, suchthat the virtual presence is visible to the viewing angle of thesubscriber.
 11. The method of claim 1, wherein the second device belongsto an entity other than the subscriber.
 12. The method of claim 1,further comprising: calculating, by the processing system and based onthe moving trajectory, an estimated time at which the subscriber isexpected to be no longer within range of the first device, wherein theidentifying is performed within a predefined window of time prior to theestimated time.
 13. The method of claim 1, wherein the second set ofresources includes at least one of: a light source, a projector, acamera, a mirror, a lens, a speaker, a microphone, or a speedometer. 14.The method of claim 1, further comprising: identifying, by theprocessing system, a third device that is located along the movingtrajectory, wherein the third device includes a third set of resourcesfor projecting virtual presences, wherein the third device is registeredwith the database maintained by virtual presence projection service tolend the third set of resources to the subscribers of the virtualpresence projection service, wherein an entry for the third device inthe database indicates a location of the third device, and wherein theidentifying the third device comprises determining that the location ofthe third device as indicated by the entry for the third devicecoincides with the route that the subscriber is expected to traverse;and controlling, by the processing system, the third device to cooperatewith the second device to project the virtual presence.
 15. The methodof claim 1, wherein the virtual presence relates to navigation.
 16. Themethod of claim 1, wherein the virtual presence relates to a medicalcondition of the subscriber.
 17. The method of claim 1, wherein thevirtual presence relates to a video call.
 18. The method of claim 1,wherein the virtual presence relates to law enforcement.
 19. Anon-transitory computer-readable medium storing instructions which, whenexecuted by a processing system including at least one processor, causethe processing system to perform operations, the operations comprising:controlling a first device in a first location to project a virtualpresence in a current field of view of a subscriber of a virtualpresence projection service; computing a moving trajectory of thesubscriber, wherein the moving trajectory comprises a route that thesubscriber is expected to traverse while moving from the first locationto a second location; identifying a second device that is located alongthe moving trajectory, wherein the second device includes a second setof resources for projecting virtual presences, wherein the second deviceis registered with a database maintained by the virtual presenceprojection service to lend the second set of resources to subscribers ofthe virtual presence projection service, wherein an entry for the seconddevice in the database indicates a location of the second device, andwherein the identifying comprises determining that the location of thesecond device as indicated by the entry coincides with the route thatthe subscriber is expected to traverse; and controlling the seconddevice to project the virtual presence in the current field of view ofthe subscriber when the subscriber is within range of the second device.20. An apparatus comprising: a processing system including at least oneprocessor; and a computer-readable medium storing instructions which,when executed by the processing system, cause the processing system toperform operations, the operations comprising: controlling a firstdevice in a first location to project a virtual presence in a currentfield of view of a subscriber of a virtual presence projection service;computing a moving trajectory of the subscriber, wherein the movingtrajectory comprises a route that the subscriber is expected to traversewhile moving from the first location to a second location; identifying asecond device that is located along the moving trajectory, wherein thesecond device includes a second set of resources for projecting virtualpresences, wherein the second device is registered with a databasemaintained by the virtual presence projection service to lend the secondset of resources to subscribers of the virtual presence projectionservice, wherein an entry for the second device in the databaseindicates a location of the second device, and wherein the identifyingcomprises determining that the location of the second device asindicated by the entry coincides with the route that the subscriber isexpected to traverse; and controlling the second device to project thevirtual presence in the current field of view of the subscriber when thesubscriber is within range of the second device.